简介

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目

安装

支持环境

  • Ubuntu
  • Debian
  • CentOS
  • OpenSUSE
  • Respberry Pi2

https://about.gitlab.com/installation/

版本

  • gitlab-ce (GitLab社区版)
  • gitlab-ci-multi-runner (GitLab持续集成框架)

环境

  • CentOS 7
  • IP:192.168.124.128 (局域网)

安装

官方安装说明:

由于国内线路访问慢问题,所以用国内镜像安装

镜像地址: 清华大学开源软件镜像站

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 在线安装脚本
## 1.配置
$ sudo yum install curl policycoreutils openssh-server
$ openssh-clients
$ sudo systemctl enable sshd
$ sudo systemctl start sshd
$ sudo yum install postfix
$ sudo systemctl enable postfix
$ sudo systemctl start postfix
$ sudo firewall-cmd --permanent --add-service=http
$ sudo systemctl reload firewalld

## 2.下载
$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ sudo yum install gitlab-ce


# 离线安装(使用国内镜像)
## 更多GitLab 版本 https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
$ curl -LJO https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.1.4-ce.0.el7.x86_64.rpm

目前下载使用的是Gitlab - 9.1.4 版本

下载Gitlab目录

1
2
3
4
# 执行运行安装命令
$ rpm -i gitlab-ce-9.1.4-ce.0.el7.x86_64.rpm
# 配置运行Gitlab
$ sudo gitlab-ctl reconfigure

使用

访问地址 http://192.168.124.128/

GitLab登录界面

首次访问需要你去初始化密码,初始化后用root用户登录

GitLab登录后的界面

现在可以正式开始使用GitLab !

配置

GitLab 汉化

安装Git

1
2
# 查看Git版本,查看是否已安装
$ git --version

如果提示”bash: git: command not found…
“,请安装Git工具,没有则可忽略该步骤

1
2
3
4
# 安装Git
$ sudo yum install git-core
# 查看当前版本
$ git --version

汉化

思路

当前最新汉化版本是9.1.4,当前安装的是9.1.3。所以需要下载最新的项目然后切换成9.1.3版本(v9.1.3-zh)

检测GitLab版本

1
2
# 检测当前Gitlab版本
$ sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

检查GitLab版本

针对当前GitLab版本找到对应的汉化版本, GitLab 9.1.3 对应版本

下载汉化项目

1
2
3
4
5
# 克隆gitlab汉化项目
$ git clone https://gitlab.com/xhang/gitlab.git

# 将汉化源添加为主机名为origin-zh的远程源码
$ git add remote orgin-zh https://gitlab.com/xhang/gitlab.git

检测当前GitLab-Zh版本

可以使用cat命令去检查VERSION的版本,结果是9.1.4,所以这里需要切换成v9.1.3-zh版本

1
2
3
4
# 查看目前有的版本
$ git tag
# 切换版本
$ git checkout v9.1.3-zh
1
2
3
4

# 使用git diff命令去检查
# 当前版本和中文汉化版本不同的地方生成.diff文件
$ git diff v9.1.3 v9.1.3-zh > /tmp/9.1.3-zh.diff

将差异的地方输出到/tmp/9.1.3-zh.diff

应用

1
2
3
4
5
6
7
8
9
# 停止 gitlab
$ sudo gitlab-ctl stop

# 应用汉化
$ cd /opt/gitlab/embedded/service/gitlab-rails
$ sudo git apply /tmp/9.1.3-zh.diff

# 启动GitLab
$ sudo gitlab-ctl start

服务邮箱配置

SMTP settings

配置/etc/gitlab/gitlab.rb文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 通过SMTP来发送邮件
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
# 邮箱账号
gitlab_rails['smtp_user_name'] = "xxuser@163.com"
# 邮箱密码
gitlab_rails['smtp_password'] = "xxpassword"
# 邮箱域:这里填写163.com就好
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
##修改gitlab配置的发信人
# 第一行配置一定要和163邮箱的账户名一样否则可能发送失败
gitlab_rails['gitlab_email_from'] = "xxuser@163.com"
user["git_user_email"] = "xxuser@163.com"

如果不知道gitlab-ctl命令在哪里,可以通过which命令去找,如果想方便一点可以选择在~/.bash_profile注册别名来方便调用

1
2
# 寻找命令, 结果位置在:/usr/bin/gitlab-ctl
$ which gitlab-ctl
1
2
3
4
5
6
7
8
9
10
# 执行配置生效
$ gitlab-ctl reconfigure

# 测试
$ gitlab-rails console
# 进入gitlab控制台后
irb(main):003:0> Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now

# 退出控制台
irb(main):003:0> exit

测试GitLab邮件服务

查看邮件是否收到

GitLab测试邮件

邮件配置已经完成

域名配置

GitLab 域名配置

配置/etc/gitlab/gitlab.rb文件,修改external_url节点

1
2
# 执行生效 
$ sudo gitlab-ctl reconfigure

重置域名/IP

GitLab我是装在本机的虚拟出来的主机上,发现Git仓的地址是localhost,所以这里需要修改gitlab.yml文件配置

GitLab仓

1
2
3

# 定位到gitlab.yml文件配置
$ cd /opt/gitlab/embedded/service/gitlab-rails/config

修改gitlab.yml文件的host节点配置

1
host: IP或者域名
1
2
# 重启GitLab
$ gitlab-ctl restart

关于使用TortoiseGit问题

在使用TortoiseGit进行Git操作时候老是要我输入密码,在进行排查的时候,使用Git命令却完全没有问题。所以对于该问题是由TortoiseGit本身导致,处理方法。

修改TortoiseGit配置

TortoiseGit 网络配置

参考资料